Method of scheduling in a data processing system

ABSTRACT

A SCHEDULE TABLE IN A PROGRAMMING SYSTEM FOR CONTROLLING THE SELECTION OF A TASK AND THE EXECUTION OF THE TASK IS PROVIDED. THE TABLE COMPRISES A PLURALITY OF FIELDS. EACH OF THE FIELDS IS PROVIDED WITH PARAMETERS TO ENABLE THE ABOVE-MENTIONED CONTROL. THESE PARAMETERS ARE CHOSEN TO IMPLEMENT THE PRINCIPLES OF &#34;WORKING THE SIZE&#34; AND &#34;BALANCED CORRE TIME.&#34; ARE EMPLOYED TO HANDLE NEW INPUTS FROM &#34;STARTING SET,&#34; ARE EMPLOYED TO HANDLE NEW INPUTS FROM THE TERMINAL. THE STARTING SET FUNCTIONS TO CONTROL RESPONSIVENESS BY YIELDING CONTROL TO NEW INPUTS, CONTROLLING TASK GROWTH IN REAL MEMORY BY FOLDING, AND SORTING LONG RUNNING TASKS BY WORKING SET SIZE. A SECOND SET OF PARAMETERS, TERMED THE &#34;LOOPING SET&#34; CONTROLS SYSTEM EFFICIENTLY AND THROUGHPUT BY USING BALANCED CORE TIME TO FAVOR EFFICIENT PROGRAMS, ESTIMATING THE WORKING SET TIME AT EACH TIME SLICE, AND DELAYING LONG RUNNING TASKS TO IMPROVE RESPONSIVENESS. THIRD, FOURTH, AND FIFTH SETS OF PARAMETERS TERMED THE &#34;AWAIT,&#34; &#34;HOLDING,&#34; AND &#34;WAITING-FOR-INTERLOCK&#34; SETS CONTROL SPECIAL PROGRAMS AND SPECIAL CONDITIONS SUCH AS INTERLOCK HANDLING FOR ALL PROGRAMS.

DEFENSIVE PUBLICATION UNITED STATES PATENT- OFFICE Published at therequest or the applicant or owner in accordance with the Notice of Dec.16, 1969, 869 0.6. 687. The abstracts of Defensive Publicationapplications are identified by distinctly numbered series and arearranged chronologically. The heading of each abstract indicates thenumber of pages of specification, including claims and sheets ofdrawings contained in the application as originally filed. The files ofthese applications are available to the public for inspection andreproduction may be purchased for 30 cents a sheet.

Defensive Publication applications have not been examined as to themerits 0t alleged invention. The Patent Oflice makes no assertion as tothe novelty of the disclosed subject matter.

PUBLISHED SEPTEMBER 3, 1974 926 O.G. l0

METHOD OF SCHEDULING IN A DATA PROCESSlNG SYSTEM Walter J. Doherty,Mahopac, N.Y., assignor to International Business Machines Corporation,Armonk, N.Y.

Continuation of application Ser. No. 83,394, Oct. 23, 1970. Thisapplication Sept. 17, 1973, Ser. No. 398,608

Int. Cl. G06f 9/12 U.S. Cl. 444-1 18 Sheets Drawing. 46 PagesSpecification A ii A l LaP :CR 0H1 M A X C R A schedule table in aprogramming system for controlling the selection of a task and theexecution of the task is provided. The table comprises a plurality offields. Each of the fields is provided with parameters to enable theabove-mentioned control. These parameters are chosen to implement theprinciples of working set size and balanced core time. A first set ofparameters, termed the Starting Set, are employed to handle new inputsfrom the terminal. The Starting Set functions to control responsivenessby yielding control to new inputs, controlling task growth in realmemory by folding, and sorting long running tasks by working set size. Asecond set of parameters, termed the Looping Set, controls systemeiiiciency and throughput by using balanced core time to favor efficientprograms, estimating the working set time at each time slice, anddelaying long running tasks to improve responsiveness. Third, fourth,and fifth sets of parameters termed the Await, Holding, andWaiting-for-Interlock sets control special programs and specialconditions such as interlock handling for all programs.

mmaon OF scusnvmne m A mm rnocnssme syswsu Original Filed 001;. 23, 1970Sept. 3, 1974 w. J. DOHERTY l8 sheets sneet 1 w E; 32 az QC n or o 01 01INVENTOR WALTER J. DOHERTY dam [Walla ATTORNEY Sept. 3, 1974 OriginalFiled Oct. 23, 1970 W. J. DOHERTY F I G. 1 B

STEP 2 METI'IOD'OF SCHEDULING INA DATA PROCESSING SYSTEM 18 Sheets-Sheet2 NO YES SCAN FOR AHEAD 0F SCHEDULE THAT'S ACCEPTABLE NO YES 1 ENTRANCECRITERIA N0 ACCEPTED YES Y ENTRANCE CRITERIA ACCEPTED YES STEP 5 LOOKFOR A TASK T0 TSE NO YES STEP 4 SORT en CORE AND DISPATCHABLE TASKSSETUP TSEND GQE ENTER ENOUEUE 0 SCANNER METHODOF SCHEDULING IN A DATAPROCESSING SYSTEM Original Filed Oct. 23, 1970 Sept. 1 w. J. DOH'ERTY 18Sheets-Sheet 8 E Q: G E: Swim; 55:25

07min.

55:: V A 2.23: cum um; v2;: 5 2:: 5w =2 H2 5.-

25 3 am: :52; :w

a: as :z a E E: :2 =2 :3

Sept. 3, 1974 mgHERTv T926,007

METHOD'OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed Oct. 23,1970 18 Sheets-Sheet ENTER 1 F IG. l 7 2A OPENLOCK TSILOCK SETLOCK ssTTNLN F G 2 DISPATCHER HG.

GET FIRST (NEXT) DTSPATCHABLE TASK OPENLOCK SYSTSITLK ALL ENABLEINTERRUPTS SCANNED WAIT 1 OPENLOCK SYSTSILK CEAKRT CALC DIFFERENCE 0F1ST ENTRY AND PRESENT TTNE CALCzSYSlDL wATT 2 USE SYSIDL FOR WAIT usECALC FOR WAIT UPDATE ELAPSED TIME OPENLOCK SYSTIMLK F l G 2 A WAIT Sept.3, 1974 Original Filed Oct. 23, 1970 w. J. DCSHERTY T92.6,007

METHODOF SCHEDULING IN A DATA PROCESSING SYSTEM 18 Sheets-Shoot 5 FIG.2B

IS TASK READY? OPENLOCK SYSTIMLK UPDATE ACCUMULATED TIME,SET LAST TIMESLICE T0 USER TIME SET CURRENT TIME TO USER TIME, USER TIME TO 0, USERTIME FLG INITIALIZE OPENLOCK SYSTSILK TASK REGISTERS SET TSI SETLOOKSYSTIMLII "m EXECUTION" l RESET RUN TIME (PSATIM) OPENLOCK TSILOCKUPDATE ELAPSED TIME PROCESS USER OPENLOCK SYSTIMLK INTERRUPTS LPSW T0USER Sept. 3, 1974 w, J, DOHERTY METHODOF SCHEDULING IN A DATAPROCESSING SYSTEM Original Filed Oct. 23, 1970 I 18 Shuts-Shoot 7 $5 51MES $2253 m= @3198 .2252: E 33 KEEPS: 52

WEE 3 5 3.; .3 m8 5 Em Sept, 3, 1974 Original Filed Oct. 23, 1970 W. J.DOHERTY METHOD'OF SCHEDULING IN A DATA PROCESSING SYSTEM ENTER SAVEREGISTERS 18 Shoots-Sheet a FIG. 4

- ENTRANCE CRITERIA CRT DISP TSIS SYSMPT SET REGISTER 15 TO ACCEPT CODE(-0) DECREIIENT SYSECB BY TSIPTS TURN OFF REAL TIME-SLICE-END FLAGRETURN, VIA R14 Sept. 3, 1974 w DOHERTY T926907 METHOD'OF SCHEDULING INA DATA PROCESSING SYSTEM Original Filed Oct. 23, 1970 18 Sheets-Sheet 9F l G. 5A ENTER 5 SCA GET CORE RESCHEDULING SAVE AREA F SAVE REGISTERS5A 5B ESTABLISH BASES FIG. FIG. 5E FIG. 5c FIG. 50

FIG. FIG. FIG. 50 5H 5I TTO 0 IIOVE TSI T0 INAOTIVE usr REIIOVE I31 IERROR FROM ACTIVE LIST SCH-RELEASE A SAVE AREA I RETURN TAKEDISPATCHABLE usr PUT TASK mro INACTIVE LIST Sept. 3, 1974 W. J. DOHERTYMETHOD OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed Oct. 23,1970 TASK IN TWAIT TASK IN AVIAIT l8 Sheets-Sheet 10 FIG. 5B

GET STETSENI) VALUE GET TWAIT LEVEL FROM STE (STETVIAIT) GET AVIAITLEVEL I FROM STE (STEAIVAIT) UPDATE STE INDICATOR IN TSI (TSISTE) EQUALDTR N0 REMOVE TSI FROM INACTIVE LIST PLACE 0N ELIGIBLE LIST I PUT TSI INPROPER SET SST T0 EQUAL DTR N0 SST Sept. 3, 1974 @H R Y T926,007

METHOD'OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed 001..23, 1970 FIG. 5C

18 Sheets-Sheet 11 T IS HOLDING CHANGE TASK TO INTERLOCK FLAG ON?APPROPRIATE STE LEVEL (TSIHLGK) A V CHANGE TASK'S CHANGE TASK'S STE STETO HOLDING TO LOW GORE HOLDING INTERLOGK LEVEL INTERLOGK LEVEL CHANGETASK'S CHANGE TASK STE LEVEL .GHANGE TASK'S STE STE LEVEL T0 T0 STENPREVALUE AND LEVEL T0 WAITING I T/S END LEVEL TURN OFF NPRE FLAG ONINTERLOGK LEVEL Sept. 3, 1974 w, DCQHERTY T926,007

METHOD'OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed Oct. 2 3l970 T SET SST T0 SET $51 o EQUAL MC DTR EQUAL on: Mc+ SST SET To 0 NO%MAL TIME SLICE END? TAKE TASK OFF GET ADD. NEXT TASK DISPATOHABLE LISTFOR DISPATCHABLE LIST PUT TASK IN ELIGIBLE LIST S'ET ems EQUAL T0 0 YESSept. 3, 1914 Q Y T926,007

METHOD'OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed Oct. 23,1970 I 18 Shasta-Shoot 15 FIG 5E FIRST ON LIST PUT FORWARD POINTER INTOSYSPEC LAST m LIST UPDATE FORWARD PTR ZERO FORWARD POINTER 0F PRECEEDINGTSI 0F PRECEEDING rs: AND REVERSE PTR PUT REVERSE PTR 0F FOLLOWING TSImm SYSLT UPDATE REVERSE POINTER OF NEXT 2 R UT TSI (ZERO our) E O o SYSUSET N0 woRR FOR INTERNAL SCHEDULER FLAG T0 0 s s RRI RETURN IS LISTEMPTY PUT svsm mm I I J Q P ZERO FORWARD AND REVERSE POINTERS F PUTADDRESS or TSI PUT ADDRESS or TSI mm mm AND SYSFLT REVERSE PTR FOLLOWINGTSI AND INTO SYSFIT RETURN Sept. 3, 1974 w. J. DOHERTY T926,007

METHQD"0F SCHEDULING I A DATA PROCESSING SYSTEM Original Filed Oct. 23,1970 l8 Sheets-Sheet u A F I G. 5 G A ENTER ZERO FoRwARn PTR or v UPDATEFORWARD PTR PRECEEDING TSI PRECEEDlNG TSI AND REVERSE PTR FOLLOWING TSIPUT REVERSE PTR THIS TSI IN SYSLIT V RETURN STORE FORWARD POINTER INSYSFLT P 3, 1974 w. J. DOHERTY METHOD OF SCHEDULING IN A DATA PROCESSINGOriginal Filed Oct. 1970 SYSTEM 18 Sheets-Sheet l 5 ENTER FIIG. 5H

GET ADDRESS OF 1ST TSI IN LIST GET TASK PRIORITY GET STE FOR LIST TSI OFLIST TSI =P OF TASK TSI SST 0F usr rs1 ssr or TASK TSI LIST TSI 1ST INELIGIBLE LIST YES PUT ADDRESS OF TASK TSI INTO SYSFW r PUT LIST TSI RPTINTO TASK TSI RPT PUT FPT OF FOLLOWING TSI INTO FPT PUT ADDRESS OF TSIIN FPT OF PREGEEDING TSI AND RPT OF FOLLOWING TSI YES Sept. 3, 1974METHOD OF SCHEDULING IN A DATA PROCESSING SYSTEM Original Filed Oct. 23,1970 W. J. DOHERTY FIG. 51

I PUT SYSLT IN RPT AND TASII TSI INTO SYSLT AND SYSFW l8 Sheets-$heet 16PUT ADDRESS TSI INTO FORWARD POINTER OF FOLLOWING TSI SET TO FPT O PUTADDRESS OF TSI INTO SYSPEO SET SYSNWII TO 0 SET SYSLSST TO 0 SET GRIS TOI I RETURN LAST TSI ON LIST PUT SYSLT IN RPT PUT' ADDRESS TSI IN FPT OFPREOEEDINO TSI AND SYSLT SET FORWARD POINTER EOUAL TO 0 Sept. 3, 1974Original Filed Oct. 23, 1970 I w. .1. DOHERTY l8 Shaetailzaot 17 6A FIG6 1 1 1 1 P 1 0 11 11 P 11 0 1 11 FIG. ERsUAAUWEs'EWWERME' HEH 6BVIVAXXLTLERAAMMRCHCJJJJ 510001110 00 0020 01 20 F1 00 0000 00 00 00 0000 00 0A 10 25 00 00 00 00 111111111011v1 01 10 0010 01 10 FF 01 0000 0041 51 50 00 00 011 11 11 24 11 1F 1F 11 111111111011v1 02 10 0010 01 10FF 02 0000 00 41 51 50 00 00 0A 11 11 24 11 1F 1F 11 111111111011v1 0510 0010 01 10 FF 05 0000 004151 50 00 800A 11 11 24 1F 11 1F 11111111111011v1 04 10 0010 01 10 FF 04 0000 00 41 51 50 00 00 01 11 11 241F 11 1F 11' 111111111011v1 05 10 0010 01 10 FF 05 0000 004151 50 00 000A 11 11 24 1F 1F 11 1F 111111111011v1 00 10 0010 01 10 FF 00 0000004151 5000 00 011 11 11 24 1F 11 1F 1F 1111111101111 01 10 0010 01 10FF 01 0000 00 41 51 511 00 00 0A 11 11 24 1F1F 1F 11 111111111011v1 0010 0010 01 10 FF 00 0000 00 41 51 50 011 00 011 11 11 24 1F 1F 11 1FSTARTING 1111111101111 09 10 0010 01 10 FF 09 0000 00 41 51 50 00 0001111 11 24 11 1F 11 1F 0111111/0 01104 0020 01 20 FF 0A 0000 00 0A 0A 0A0A 00 01 1A 1A 22 0A 0A 0A 011 0111011 0010 0015 01 10 FF 00 012F 01 4055 55 00 800A 10 10 21 00 00 00 00 SH 0111011 00 111 0015 01 10 FF 00012F 01 40 55 55 00 800A 10 10 2100000000 0111011 00 10 0015 01 10 FF 000121 01 40 55 55 00 00 01110 10 2100000000 011011 01 10 0015 01 10 FF 01012F 01 40 55 55 0100 011 10 10 2101 01 01 01 0111011 0F 10 0015 01 10FF 0F 0121 01 40 55 55 0F 00 0A 10 10 21 0F 0F 0F 0F 0111011 10 10 001501 10 FF 10 0121 01 40 55 55 10 0001110 10 21 10 1010 10 0111011 11 10001501 10 FF 11 0121 01 40 55 55 11 00 0A 10 10 21 11 11 11 11 011101112 10 0015 01 10 FF 12 0121 01 40 55 55 12 00 0A 10 10 21 12 12 12 120111011 10 0015 01 10 F1 15 012F 00 40 55 55 15 00 0A 10 10 21 15 15 1515 100011 14 05 0020 02 FF 14 0000 00 14 14.14 14 00 011 10 10 21 14 1414 14 100011 15 04 0020 02 20 FF 15 0000 00 15 15 15 15 00 0A 11 11 201515 15 15 91001 1110 10 00 0015 01 20 1F 10 0121 00 00 00 10 00 00 0A 1010 00 00 00 00 1111111110101 11 02 0015 01 10 FF 11 012F 00 41 20 11 0000 0A 1111 2411 11 1F 11 HOLDING 1111111101111 10 02 0015 01 20 FF 10012F 00 '40 20 10 00 00 0A 10 10 251F 11 1F 11 1111101101111 19 05 001501 FF 19 0121 00 4A 20 19 00 00 0A 19 19 2011 11 1F 1F 111111110011001111/0 111 05 0015 01 20 FF 1A 012F 0001101 1A 0110.001 111 111 221A111 1A 11 011011 10 04 0015 01 10 FF 10 0121 0040 5510 00 00 0A 10 102110 10 10 10 011011 10 04 0015 01 50 FF 10 0121 00555010 15 00 011 1010 20-10 10 10 10 100011 10 01 0015 01 20 F1 10 012F 00 14 14 10 14 000A 10 10 21 14 14 14 14 1000FF 11 05 0015 01 20 FF 11 0121 00 15 15 1115 00 011 11 11 20 15 15 15,15 11111110101 w11111 1F 01 0015 01 25 FF 110000 00 1F 11 00 00 00 0A 11 11 24 11 1F 11 1F 1000FF 20 00 0015 01 20FF 20 0000 25 15 15 15 15 00 0A 11 11 20 15 15 15 15 100011 2100 0015 0120 FF 21 0000 25 14 14 14 14 00011 10 10 211,114 14 14 0111111/0 22 000015 01 20 FF 22 0000 25010101010001 11 1122011010101 1011 91501 1110 2500 0015 01 20 F1 25 0000 0100 00 00 00 00 0A 10 10 25 00 00 00 001111,11111011v1 24 00 0015 01 10 F 24 0000 25 41 20 50 00 00 0A 11 112411 11 1F 11 INTERLOCK 1111111101111 25 00 0015 01 20 F1 25 0000 25 4120 50 00 00 011 10 10 2511 1F 11 11 SH INTERACTIVE 20 00 0015 01 50 F120 0000 25 20 20 5100 00011 19 19 2011 11 11 1F 011011 2100 0015 01 10F1 21 0121 25 55210000 0A 10 10 2100 00 00 00 0111011 20 00 0015 01 50 F0121 25 55 55 2015 00 011 10 10 20 15 15 15 15

